﻿using System;
using System.ComponentModel;
using System.Runtime.InteropServices;

namespace Teigha.Core
{
	public class OdGiBaseVectorizer : OdGiWorldDrawImpl, OdGiConveyorContext, OdGiDeviation
	{
		[EditorBrowsable(EditorBrowsableState.Never)]
		public OdGiBaseVectorizer(IntPtr cPtr, bool cMemoryOwn) : base(GlobalsPINVOKE.OdGiBaseVectorizer_SWIGUpcast(cPtr), cMemoryOwn)
		{
			this.swigCPtr = new HandleRef(this, cPtr);
		}

		[EditorBrowsable(EditorBrowsableState.Never)]
		public static HandleRef getCPtr(OdGiBaseVectorizer obj)
		{
			if (obj != null)
			{
				return obj.swigCPtr;
			}
			return new HandleRef(null, IntPtr.Zero);
		}

		~OdGiBaseVectorizer()
		{
			this.Dispose();
		}

		public new virtual void Dispose()
		{
			if (this.swigCPtr.Handle != IntPtr.Zero)
			{
				if (this.swigCMemOwn)
				{
					lock (this.locker)
					{
						if (this.swigCPtr.Handle != IntPtr.Zero && this.swigCMemOwn)
						{
							this.swigCMemOwn = false;
							GlobalsPINVOKE.delete_OdGiBaseVectorizer(this.swigCPtr);
						}
					}
					this.swigCMemOwn = false;
				}
				this.swigCPtr = new HandleRef(null, IntPtr.Zero);
			}
			GC.SuppressFinalize(this);
		}

		[EditorBrowsable(EditorBrowsableState.Never)]
		HandleRef OdGiConveyorContext.GetCPtr()
		{
			return new HandleRef(this, GlobalsPINVOKE.OdGiBaseVectorizer_OdGiConveyorContext_GetCPtr(this.swigCPtr.Handle));
		}

		[EditorBrowsable(EditorBrowsableState.Never)]
		HandleRef OdGiDeviation.GetCPtr()
		{
			return new HandleRef(this, GlobalsPINVOKE.OdGiBaseVectorizer_OdGiDeviation_GetCPtr(this.swigCPtr.Handle));
		}

		public bool isEntityTraitsDataChanged(int bit)
		{
			bool result = GlobalsPINVOKE.OdGiBaseVectorizer_isEntityTraitsDataChanged__SWIG_0(this.swigCPtr, bit);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public bool isEntityTraitsDataChanged()
		{
			bool result = GlobalsPINVOKE.OdGiBaseVectorizer_isEntityTraitsDataChanged__SWIG_1(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual void setEntityTraitsDataChanged()
		{
			GlobalsPINVOKE.OdGiBaseVectorizer_setEntityTraitsDataChanged__SWIG_0(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual void setEntityTraitsDataChanged(int bit, bool value)
		{
			GlobalsPINVOKE.OdGiBaseVectorizer_setEntityTraitsDataChanged__SWIG_1(this.swigCPtr, bit, value);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual void setEntityTraitsDataChanged(int bit)
		{
			GlobalsPINVOKE.OdGiBaseVectorizer_setEntityTraitsDataChanged__SWIG_2(this.swigCPtr, bit);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public void clearEntityTraitsDataChanged()
		{
			GlobalsPINVOKE.OdGiBaseVectorizer_clearEntityTraitsDataChanged(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual bool effectivelyVisible()
		{
			bool result = GlobalsPINVOKE.OdGiBaseVectorizer_effectivelyVisible(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual OdGiContext giContext()
		{
			OdGiContext result = (OdGiContext)Teigha.Core.Helpers.odrxCreateObjectInternal(GlobalsPINVOKE.OdGiBaseVectorizer_giContext(this.swigCPtr), false);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual OdGiDrawableDesc currentDrawableDesc()
		{
			IntPtr intPtr = GlobalsPINVOKE.OdGiBaseVectorizer_currentDrawableDesc(this.swigCPtr);
			OdGiDrawableDesc result = (intPtr == IntPtr.Zero) ? null : new OdGiDrawableDesc(intPtr, false);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual OdGiDrawable currentDrawable()
		{
			OdGiDrawable result = (OdGiDrawable)Teigha.Core.Helpers.odrxCreateObjectInternal(GlobalsPINVOKE.OdGiBaseVectorizer_currentDrawable(this.swigCPtr), false);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual OdGiViewport giViewport()
		{
			OdGiViewport result = (OdGiViewport)Teigha.Core.Helpers.odrxCreateObjectInternal(GlobalsPINVOKE.OdGiBaseVectorizer_giViewport(this.swigCPtr), false);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual OdGsView gsView()
		{
			OdGsView result = (OdGsView)Teigha.Core.Helpers.odrxCreateObjectInternal(GlobalsPINVOKE.OdGiBaseVectorizer_gsView(this.swigCPtr), false);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public OdGiDrawableDesc m_pDrawableDesc
		{
			get
			{
				IntPtr intPtr = GlobalsPINVOKE.OdGiBaseVectorizer_m_pDrawableDesc_get(this.swigCPtr);
				OdGiDrawableDesc result = (intPtr == IntPtr.Zero) ? null : new OdGiDrawableDesc(intPtr, false);
				if (GlobalsPINVOKE.SWIGPendingException.Pending)
				{
					throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
				}
				return result;
			}
			set
			{
				GlobalsPINVOKE.OdGiBaseVectorizer_m_pDrawableDesc_set(this.swigCPtr, OdGiDrawableDesc.getCPtr(value));
				if (GlobalsPINVOKE.SWIGPendingException.Pending)
				{
					throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
				}
			}
		}

		public uint m_nDrawableAttributes
		{
			get
			{
				uint result = GlobalsPINVOKE.OdGiBaseVectorizer_m_nDrawableAttributes_get(this.swigCPtr);
				if (GlobalsPINVOKE.SWIGPendingException.Pending)
				{
					throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
				}
				return result;
			}
			set
			{
				GlobalsPINVOKE.OdGiBaseVectorizer_m_nDrawableAttributes_set(this.swigCPtr, value);
				if (GlobalsPINVOKE.SWIGPendingException.Pending)
				{
					throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
				}
			}
		}

		public OdGiDrawableDesc drawableDesc()
		{
			IntPtr intPtr = GlobalsPINVOKE.OdGiBaseVectorizer_drawableDesc(this.swigCPtr);
			OdGiDrawableDesc result = (intPtr == IntPtr.Zero) ? null : new OdGiDrawableDesc(intPtr, false);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual OdGiSubEntityTraitsData effectiveTraits()
		{
			OdGiSubEntityTraitsData result = new OdGiSubEntityTraitsData(GlobalsPINVOKE.OdGiBaseVectorizer_effectiveTraits(this.swigCPtr), false);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual void setEffectiveTraits(OdGiSubEntityTraitsData traits, OdGeVector3d fillNormal)
		{
			GlobalsPINVOKE.OdGiBaseVectorizer_setEffectiveTraits__SWIG_0(this.swigCPtr, OdGiSubEntityTraitsData.getCPtr(traits), OdGeVector3d.getCPtr(fillNormal));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual void setEffectiveTraits(OdGiSubEntityTraitsData traits)
		{
			GlobalsPINVOKE.OdGiBaseVectorizer_setEffectiveTraits__SWIG_1(this.swigCPtr, OdGiSubEntityTraitsData.getCPtr(traits));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual OdRxClass isA()
		{
			OdRxClass result = (OdRxClass)Teigha.Core.Helpers.odrxCreateObjectInternal(GlobalsPINVOKE.OdGiBaseVectorizer_isA(this.swigCPtr), false);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual OdRxObject queryX(OdRxClass pProtocolClass)
		{
			OdRxObject result = Teigha.Core.Helpers.odrxCreateObjectInternal(GlobalsPINVOKE.OdGiBaseVectorizer_queryX(this.swigCPtr, OdRxClass.getCPtr(pProtocolClass)), false);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual OdGiConveyorOutput output()
		{
			OdGiConveyorOutput_Internal result = new OdGiConveyorOutput_Internal(GlobalsPINVOKE.OdGiBaseVectorizer_output(this.swigCPtr), false);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public void setEyeToOutputTransform(OdGeMatrix3d xfm)
		{
			GlobalsPINVOKE.OdGiBaseVectorizer_setEyeToOutputTransform(this.swigCPtr, OdGeMatrix3d.getCPtr(xfm));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public OdGeMatrix3d eyeToOutputTransform()
		{
			OdGeMatrix3d result = new OdGeMatrix3d(GlobalsPINVOKE.OdGiBaseVectorizer_eyeToOutputTransform__SWIG_0(this.swigCPtr), false);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public void eyeToOutputTransform(OdGeMatrix3d xfm)
		{
			GlobalsPINVOKE.OdGiBaseVectorizer_eyeToOutputTransform__SWIG_1(this.swigCPtr, OdGeMatrix3d.getCPtr(xfm));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public OdGiConveyorContext drawContext()
		{
			OdGiConveyorContext_Internal result = new OdGiConveyorContext_Internal(GlobalsPINVOKE.OdGiBaseVectorizer_drawContext__SWIG_0(this.swigCPtr), false);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual void beginViewVectorization()
		{
			GlobalsPINVOKE.OdGiBaseVectorizer_beginViewVectorization(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual void endViewVectorization()
		{
			GlobalsPINVOKE.OdGiBaseVectorizer_endViewVectorization(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual void setTrueColor(OdCmEntityColor trueColor)
		{
			GlobalsPINVOKE.OdGiBaseVectorizer_setTrueColor(this.swigCPtr, OdCmEntityColor.getCPtr(trueColor));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual void setColor(ushort color)
		{
			GlobalsPINVOKE.OdGiBaseVectorizer_setColor(this.swigCPtr, color);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual void setLayer(OdDbStub layerId)
		{
			GlobalsPINVOKE.OdGiBaseVectorizer_setLayer(this.swigCPtr, OdDbStub.getCPtr(layerId));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual void setLineType(OdDbStub lineTypeId)
		{
			GlobalsPINVOKE.OdGiBaseVectorizer_setLineType(this.swigCPtr, OdDbStub.getCPtr(lineTypeId));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual void setFillType(OdGiFillType fillType)
		{
			GlobalsPINVOKE.OdGiBaseVectorizer_setFillType(this.swigCPtr, (int)fillType);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual void setLineWeight(LineWeight lineWeight)
		{
			GlobalsPINVOKE.OdGiBaseVectorizer_setLineWeight(this.swigCPtr, (int)lineWeight);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual void setLineTypeScale(double lineTypeScale)
		{
			GlobalsPINVOKE.OdGiBaseVectorizer_setLineTypeScale(this.swigCPtr, lineTypeScale);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual void setThickness(double thickness)
		{
			GlobalsPINVOKE.OdGiBaseVectorizer_setThickness(this.swigCPtr, thickness);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual void setPlotStyleName(PlotStyleNameType plotStyleNameType, OdDbStub pPlotStyleNameId)
		{
			GlobalsPINVOKE.OdGiBaseVectorizer_setPlotStyleName__SWIG_0(this.swigCPtr, (int)plotStyleNameType, OdDbStub.getCPtr(pPlotStyleNameId));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual void setPlotStyleName(PlotStyleNameType plotStyleNameType)
		{
			GlobalsPINVOKE.OdGiBaseVectorizer_setPlotStyleName__SWIG_1(this.swigCPtr, (int)plotStyleNameType);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual void setSelectionMarker(IntPtr selectionMarker)
		{
			GlobalsPINVOKE.OdGiBaseVectorizer_setSelectionMarker(this.swigCPtr, selectionMarker);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual void setMaterial(OdDbStub pMaterialId)
		{
			GlobalsPINVOKE.OdGiBaseVectorizer_setMaterial(this.swigCPtr, OdDbStub.getCPtr(pMaterialId));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual void setMapper(OdGiMapper pMapper)
		{
			GlobalsPINVOKE.OdGiBaseVectorizer_setMapper(this.swigCPtr, OdGiMapper.getCPtr(pMapper));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual void setVisualStyle(OdDbStub pVisualStyleId)
		{
			GlobalsPINVOKE.OdGiBaseVectorizer_setVisualStyle__SWIG_0(this.swigCPtr, OdDbStub.getCPtr(pVisualStyleId));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual void setTransparency(OdCmTransparency transparency)
		{
			GlobalsPINVOKE.OdGiBaseVectorizer_setTransparency(this.swigCPtr, OdCmTransparency.getCPtr(transparency));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual void setDrawFlags(uint drawFlags)
		{
			GlobalsPINVOKE.OdGiBaseVectorizer_setDrawFlags(this.swigCPtr, drawFlags);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual void setSelectionGeom(bool bSelectionFlag)
		{
			GlobalsPINVOKE.OdGiBaseVectorizer_setSelectionGeom(this.swigCPtr, bSelectionFlag);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual void setShadowFlags(OdGiSubEntityTraits.ShadowFlags shadowFlags)
		{
			GlobalsPINVOKE.OdGiBaseVectorizer_setShadowFlags(this.swigCPtr, (int)shadowFlags);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual void setSectionable(bool bSectionableFlag)
		{
			GlobalsPINVOKE.OdGiBaseVectorizer_setSectionable(this.swigCPtr, bSectionableFlag);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual void setSelectionFlags(OdGiSubEntityTraits.SelectionFlags selectionFlags)
		{
			GlobalsPINVOKE.OdGiBaseVectorizer_setSelectionFlags(this.swigCPtr, (int)selectionFlags);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual void setSecondaryTrueColor(OdCmEntityColor color)
		{
			GlobalsPINVOKE.OdGiBaseVectorizer_setSecondaryTrueColor(this.swigCPtr, OdCmEntityColor.getCPtr(color));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual void setLineStyleModifiers(OdGiDgLinetypeModifiers pLSMod)
		{
			GlobalsPINVOKE.OdGiBaseVectorizer_setLineStyleModifiers(this.swigCPtr, OdGiDgLinetypeModifiers.getCPtr(pLSMod));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual void setVisualStyle(OdGiVisualStyle visualStyle)
		{
			GlobalsPINVOKE.OdGiBaseVectorizer_setVisualStyle__SWIG_1(this.swigCPtr, OdGiVisualStyle.getCPtr(visualStyle));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual bool visualStyle(OdGiVisualStyle visualStyle)
		{
			bool result = GlobalsPINVOKE.OdGiBaseVectorizer_visualStyle__SWIG_0(this.swigCPtr, OdGiVisualStyle.getCPtr(visualStyle));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual OdDbStub visualStyle()
		{
			IntPtr intPtr = GlobalsPINVOKE.OdGiBaseVectorizer_visualStyle__SWIG_1(this.swigCPtr);
			OdDbStub result = (intPtr == IntPtr.Zero) ? null : new OdDbStub(intPtr, false);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual OdGiContext context()
		{
			OdGiContext result = (OdGiContext)Teigha.Core.Helpers.odrxCreateObjectInternal(GlobalsPINVOKE.OdGiBaseVectorizer_context(this.swigCPtr), false);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual bool regenAbort()
		{
			bool result = GlobalsPINVOKE.OdGiBaseVectorizer_regenAbort(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual OdGiSubEntityTraits subEntityTraits()
		{
			OdGiSubEntityTraits result = (OdGiSubEntityTraits)Teigha.Core.Helpers.odrxCreateObjectInternal(GlobalsPINVOKE.OdGiBaseVectorizer_subEntityTraits(this.swigCPtr), false);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual double deviation(OdGiDeviationType deviationType, OdGePoint3d pointOnCurve)
		{
			double result = GlobalsPINVOKE.OdGiBaseVectorizer_deviation(this.swigCPtr, (int)deviationType, OdGePoint3d.getCPtr(pointOnCurve));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual OdGiRegenType regenType()
		{
			OdGiRegenType result = (OdGiRegenType)GlobalsPINVOKE.OdGiBaseVectorizer_regenType(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual uint numberOfIsolines()
		{
			uint result = GlobalsPINVOKE.OdGiBaseVectorizer_numberOfIsolines(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual OdGiGeometry rawGeometry()
		{
			OdGiGeometry result = (OdGiGeometry)Teigha.Core.Helpers.odrxCreateObjectInternal(GlobalsPINVOKE.OdGiBaseVectorizer_rawGeometry(this.swigCPtr), false);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual bool isDragging()
		{
			bool result = GlobalsPINVOKE.OdGiBaseVectorizer_isDragging(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual uint drawContextFlags()
		{
			uint result = GlobalsPINVOKE.OdGiBaseVectorizer_drawContextFlags(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public void setDrawContextFlags(uint flags, bool bFlag)
		{
			GlobalsPINVOKE.OdGiBaseVectorizer_setDrawContextFlags(this.swigCPtr, flags, bFlag);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual uint sequenceNumber()
		{
			uint result = GlobalsPINVOKE.OdGiBaseVectorizer_sequenceNumber(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual bool isValidId(uint viewportId)
		{
			bool result = GlobalsPINVOKE.OdGiBaseVectorizer_isValidId(this.swigCPtr, viewportId);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual OdDbStub viewportObjectId()
		{
			IntPtr intPtr = GlobalsPINVOKE.OdGiBaseVectorizer_viewportObjectId(this.swigCPtr);
			OdDbStub result = (intPtr == IntPtr.Zero) ? null : new OdDbStub(intPtr, false);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual OdGiViewport viewport()
		{
			OdGiViewport result = (OdGiViewport)Teigha.Core.Helpers.odrxCreateObjectInternal(GlobalsPINVOKE.OdGiBaseVectorizer_viewport(this.swigCPtr), false);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual void circle(OdGePoint3d center, double radius, OdGeVector3d normal)
		{
			GlobalsPINVOKE.OdGiBaseVectorizer_circle__SWIG_0(this.swigCPtr, OdGePoint3d.getCPtr(center), radius, OdGeVector3d.getCPtr(normal));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual void circle(OdGePoint3d firstPoint, OdGePoint3d secondPoint, OdGePoint3d thirdPoint)
		{
			GlobalsPINVOKE.OdGiBaseVectorizer_circle__SWIG_1(this.swigCPtr, OdGePoint3d.getCPtr(firstPoint), OdGePoint3d.getCPtr(secondPoint), OdGePoint3d.getCPtr(thirdPoint));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual void circularArc(OdGePoint3d center, double radius, OdGeVector3d normal, OdGeVector3d startVector, double sweepAngle, OdGiArcType arcType)
		{
			GlobalsPINVOKE.OdGiBaseVectorizer_circularArc__SWIG_0(this.swigCPtr, OdGePoint3d.getCPtr(center), radius, OdGeVector3d.getCPtr(normal), OdGeVector3d.getCPtr(startVector), sweepAngle, (int)arcType);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual void circularArc(OdGePoint3d center, double radius, OdGeVector3d normal, OdGeVector3d startVector, double sweepAngle)
		{
			GlobalsPINVOKE.OdGiBaseVectorizer_circularArc__SWIG_1(this.swigCPtr, OdGePoint3d.getCPtr(center), radius, OdGeVector3d.getCPtr(normal), OdGeVector3d.getCPtr(startVector), sweepAngle);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual void circularArc(OdGePoint3d firstPoint, OdGePoint3d secondPoint, OdGePoint3d thirdPoint, OdGiArcType arcType)
		{
			GlobalsPINVOKE.OdGiBaseVectorizer_circularArc__SWIG_2(this.swigCPtr, OdGePoint3d.getCPtr(firstPoint), OdGePoint3d.getCPtr(secondPoint), OdGePoint3d.getCPtr(thirdPoint), (int)arcType);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual void circularArc(OdGePoint3d firstPoint, OdGePoint3d secondPoint, OdGePoint3d thirdPoint)
		{
			GlobalsPINVOKE.OdGiBaseVectorizer_circularArc__SWIG_3(this.swigCPtr, OdGePoint3d.getCPtr(firstPoint), OdGePoint3d.getCPtr(secondPoint), OdGePoint3d.getCPtr(thirdPoint));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual void polyline(OdGePoint3d[] numVertices, OdGeVector3d pNormal, IntPtr baseSubEntMarker)
		{
			IntPtr intPtr = Teigha.Core.Helpers.MarshalPoint3dArray(numVertices);
			try
			{
				GlobalsPINVOKE.OdGiBaseVectorizer_polyline__SWIG_0(this.swigCPtr, intPtr, OdGeVector3d.getCPtr(pNormal), baseSubEntMarker);
				if (GlobalsPINVOKE.SWIGPendingException.Pending)
				{
					throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
				}
			}
			finally
			{
				Marshal.FreeCoTaskMem(intPtr);
			}
		}

		public new virtual void polyline(OdGePoint3d[] numVertices, OdGeVector3d pNormal)
		{
			IntPtr intPtr = Teigha.Core.Helpers.MarshalPoint3dArray(numVertices);
			try
			{
				GlobalsPINVOKE.OdGiBaseVectorizer_polyline__SWIG_1(this.swigCPtr, intPtr, OdGeVector3d.getCPtr(pNormal));
				if (GlobalsPINVOKE.SWIGPendingException.Pending)
				{
					throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
				}
			}
			finally
			{
				Marshal.FreeCoTaskMem(intPtr);
			}
		}

		public new virtual void polyline(OdGePoint3d[] numVertices)
		{
			IntPtr intPtr = Teigha.Core.Helpers.MarshalPoint3dArray(numVertices);
			try
			{
				GlobalsPINVOKE.OdGiBaseVectorizer_polyline__SWIG_2(this.swigCPtr, intPtr);
				if (GlobalsPINVOKE.SWIGPendingException.Pending)
				{
					throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
				}
			}
			finally
			{
				Marshal.FreeCoTaskMem(intPtr);
			}
		}

		public new virtual void polygon(OdGePoint3d[] numVertices)
		{
			IntPtr intPtr = Teigha.Core.Helpers.MarshalPoint3dArray(numVertices);
			try
			{
				GlobalsPINVOKE.OdGiBaseVectorizer_polygon(this.swigCPtr, intPtr);
				if (GlobalsPINVOKE.SWIGPendingException.Pending)
				{
					throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
				}
			}
			finally
			{
				Marshal.FreeCoTaskMem(intPtr);
			}
		}

		public new virtual void pline(OdGiPolyline polyline, uint fromIndex, uint numSegs)
		{
			GlobalsPINVOKE.OdGiBaseVectorizer_pline__SWIG_0(this.swigCPtr, OdGiPolyline.getCPtr(polyline), fromIndex, numSegs);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual void pline(OdGiPolyline polyline, uint fromIndex)
		{
			GlobalsPINVOKE.OdGiBaseVectorizer_pline__SWIG_1(this.swigCPtr, OdGiPolyline.getCPtr(polyline), fromIndex);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual void pline(OdGiPolyline polyline)
		{
			GlobalsPINVOKE.OdGiBaseVectorizer_pline__SWIG_2(this.swigCPtr, OdGiPolyline.getCPtr(polyline));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public void shape(OdGePoint3d position, OdGeVector3d normal, OdGeVector3d direction, int shapeNumber, OdGiTextStyle pTextStyle)
		{
			GlobalsPINVOKE.OdGiBaseVectorizer_shape(this.swigCPtr, OdGePoint3d.getCPtr(position), OdGeVector3d.getCPtr(normal), OdGeVector3d.getCPtr(direction), shapeNumber, OdGiTextStyle.getCPtr(pTextStyle));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual void text(OdGePoint3d position, OdGeVector3d normal, OdGeVector3d direction, double height, double width, double oblique, string msg)
		{
			GlobalsPINVOKE.OdGiBaseVectorizer_text__SWIG_0(this.swigCPtr, OdGePoint3d.getCPtr(position), OdGeVector3d.getCPtr(normal), OdGeVector3d.getCPtr(direction), height, width, oblique, msg);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual void text(OdGePoint3d position, OdGeVector3d normal, OdGeVector3d direction, string msg, bool raw, OdGiTextStyle pTextStyle)
		{
			GlobalsPINVOKE.OdGiBaseVectorizer_text__SWIG_1(this.swigCPtr, OdGePoint3d.getCPtr(position), OdGeVector3d.getCPtr(normal), OdGeVector3d.getCPtr(direction), msg, raw, OdGiTextStyle.getCPtr(pTextStyle));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual void xline(OdGePoint3d firstPoint, OdGePoint3d secondPoint)
		{
			GlobalsPINVOKE.OdGiBaseVectorizer_xline(this.swigCPtr, OdGePoint3d.getCPtr(firstPoint), OdGePoint3d.getCPtr(secondPoint));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual void ray(OdGePoint3d basePoint, OdGePoint3d throughPoint)
		{
			GlobalsPINVOKE.OdGiBaseVectorizer_ray(this.swigCPtr, OdGePoint3d.getCPtr(basePoint), OdGePoint3d.getCPtr(throughPoint));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual void nurbs(OdGeNurbCurve3d nurbsCurve)
		{
			GlobalsPINVOKE.OdGiBaseVectorizer_nurbs(this.swigCPtr, OdGeNurbCurve3d.getCPtr(nurbsCurve));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual void ellipArc(OdGeEllipArc3d ellipArc, OdGePoint3d[] endPointsOverrides, OdGiArcType arcType)
		{
			IntPtr intPtr = Helpers.MarshalPointPair(endPointsOverrides);
			try
			{
				GlobalsPINVOKE.OdGiBaseVectorizer_ellipArc__SWIG_0(this.swigCPtr, OdGeEllipArc3d.getCPtr(ellipArc), intPtr, (int)arcType);
				if (GlobalsPINVOKE.SWIGPendingException.Pending)
				{
					throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
				}
			}
			finally
			{
				if (intPtr != IntPtr.Zero)
				{
					Marshal.FreeCoTaskMem(intPtr);
				}
			}
		}

		public new virtual void ellipArc(OdGeEllipArc3d ellipArc, OdGePoint3d[] endPointsOverrides)
		{
			IntPtr intPtr = Helpers.MarshalPointPair(endPointsOverrides);
			try
			{
				GlobalsPINVOKE.OdGiBaseVectorizer_ellipArc__SWIG_1(this.swigCPtr, OdGeEllipArc3d.getCPtr(ellipArc), intPtr);
				if (GlobalsPINVOKE.SWIGPendingException.Pending)
				{
					throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
				}
			}
			finally
			{
				if (intPtr != IntPtr.Zero)
				{
					Marshal.FreeCoTaskMem(intPtr);
				}
			}
		}

		public new virtual void ellipArc(OdGeEllipArc3d ellipArc)
		{
			GlobalsPINVOKE.OdGiBaseVectorizer_ellipArc__SWIG_2(this.swigCPtr, OdGeEllipArc3d.getCPtr(ellipArc));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual void mesh(MeshData numRows)
		{
			IntPtr intPtr = Helpers.MarshalMeshData(numRows);
			try
			{
				GlobalsPINVOKE.OdGiBaseVectorizer_mesh(this.swigCPtr, intPtr);
				if (GlobalsPINVOKE.SWIGPendingException.Pending)
				{
					throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
				}
			}
			finally
			{
				Marshal.FreeCoTaskMem(intPtr);
			}
		}

		public new virtual void shell(ShellData numVertices)
		{
			IntPtr intPtr = Helpers.MarshalShellData(numVertices);
			try
			{
				GlobalsPINVOKE.OdGiBaseVectorizer_shell(this.swigCPtr, intPtr);
				if (GlobalsPINVOKE.SWIGPendingException.Pending)
				{
					throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
				}
			}
			finally
			{
				Marshal.FreeCoTaskMem(intPtr);
			}
		}

		public new virtual void worldLine(OdGePoint3d points)
		{
			GlobalsPINVOKE.OdGiBaseVectorizer_worldLine(this.swigCPtr, OdGePoint3d.getCPtr(points));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual void image(OdGiImageBGRA32 img, OdGePoint3d origin, OdGeVector3d uVec, OdGeVector3d vVec, OdGiRasterImage.TransparencyMode trpMode)
		{
			GlobalsPINVOKE.OdGiBaseVectorizer_image__SWIG_0(this.swigCPtr, OdGiImageBGRA32.getCPtr(img), OdGePoint3d.getCPtr(origin), OdGeVector3d.getCPtr(uVec), OdGeVector3d.getCPtr(vVec), (int)trpMode);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual void image(OdGiImageBGRA32 img, OdGePoint3d origin, OdGeVector3d uVec, OdGeVector3d vVec)
		{
			GlobalsPINVOKE.OdGiBaseVectorizer_image__SWIG_1(this.swigCPtr, OdGiImageBGRA32.getCPtr(img), OdGePoint3d.getCPtr(origin), OdGeVector3d.getCPtr(uVec), OdGeVector3d.getCPtr(vVec));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual void polypoint(OdGePoint3d[] numPoints, OdCmEntityColor pColors, OdGeVector3d pNormals, IntPtr[] pSubEntMarkers)
		{
			IntPtr intPtr = Teigha.Core.Helpers.MarshalPoint3dArray(numPoints);
			try
			{
				GlobalsPINVOKE.OdGiBaseVectorizer_polypoint(this.swigCPtr, intPtr, OdCmEntityColor.getCPtr(pColors), OdGeVector3d.getCPtr(pNormals), Helpers.MarshalIntPtrFixedArray(pSubEntMarkers));
				if (GlobalsPINVOKE.SWIGPendingException.Pending)
				{
					throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
				}
			}
			finally
			{
				Marshal.FreeCoTaskMem(intPtr);
			}
		}

		public virtual void rowOfDots(int numPoints, OdGePoint3d startPoint, OdGeVector3d dirToNextPoint)
		{
			GlobalsPINVOKE.OdGiBaseVectorizer_rowOfDots(this.swigCPtr, numPoints, OdGePoint3d.getCPtr(startPoint), OdGeVector3d.getCPtr(dirToNextPoint));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual void pushClipBoundary(OdGiClipBoundary pBoundary)
		{
			GlobalsPINVOKE.OdGiBaseVectorizer_pushClipBoundary__SWIG_0(this.swigCPtr, OdGiClipBoundary.getCPtr(pBoundary));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual void pushClipBoundary(OdGiClipBoundary pBoundary, OdGiAbstractClipBoundary pClipInfo)
		{
			GlobalsPINVOKE.OdGiBaseVectorizer_pushClipBoundary__SWIG_1(this.swigCPtr, OdGiClipBoundary.getCPtr(pBoundary), OdGiAbstractClipBoundary.getCPtr(pClipInfo));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public void drawClipBoundary(OdGiClipBoundary pBoundary, OdGiAbstractClipBoundary pClipInfo)
		{
			GlobalsPINVOKE.OdGiBaseVectorizer_drawClipBoundary(this.swigCPtr, OdGiClipBoundary.getCPtr(pBoundary), OdGiAbstractClipBoundary.getCPtr(pClipInfo));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual void popClipBoundary()
		{
			GlobalsPINVOKE.OdGiBaseVectorizer_popClipBoundary(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public bool isClipping()
		{
			bool result = GlobalsPINVOKE.OdGiBaseVectorizer_isClipping(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual void pushModelTransform(OdGeMatrix3d xfm)
		{
			GlobalsPINVOKE.OdGiBaseVectorizer_pushModelTransform__SWIG_0(this.swigCPtr, OdGeMatrix3d.getCPtr(xfm));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual void pushModelTransform(OdGeVector3d normal)
		{
			GlobalsPINVOKE.OdGiBaseVectorizer_pushModelTransform__SWIG_1(this.swigCPtr, OdGeVector3d.getCPtr(normal));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual void popModelTransform()
		{
			GlobalsPINVOKE.OdGiBaseVectorizer_popModelTransform(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual OdGeMatrix3d getModelToWorldTransform()
		{
			OdGeMatrix3d result = new OdGeMatrix3d(GlobalsPINVOKE.OdGiBaseVectorizer_getModelToWorldTransform(this.swigCPtr), true);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual OdGeMatrix3d getWorldToModelTransform()
		{
			OdGeMatrix3d result = new OdGeMatrix3d(GlobalsPINVOKE.OdGiBaseVectorizer_getWorldToModelTransform(this.swigCPtr), true);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual void draw(OdGiDrawable pDrawable)
		{
			GlobalsPINVOKE.OdGiBaseVectorizer_draw(this.swigCPtr, OdGiDrawable.getCPtr(pDrawable));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual OdGiPathNode currentGiPath()
		{
			IntPtr intPtr = GlobalsPINVOKE.OdGiBaseVectorizer_currentGiPath(this.swigCPtr);
			OdGiPathNode result = (intPtr == IntPtr.Zero) ? null : new OdGiPathNode(intPtr, false);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual uint setAttributes(OdGiDrawable pDrawable)
		{
			uint result = GlobalsPINVOKE.OdGiBaseVectorizer_setAttributes(this.swigCPtr, OdGiDrawable.getCPtr(pDrawable));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public uint drawableAttributes()
		{
			uint result = GlobalsPINVOKE.OdGiBaseVectorizer_drawableAttributes(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public bool needDraw(uint drawableFlags)
		{
			bool result = GlobalsPINVOKE.OdGiBaseVectorizer_needDraw(this.swigCPtr, drawableFlags);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual bool doDraw(uint drawableFlags, OdGiDrawable pDrawable)
		{
			bool result = GlobalsPINVOKE.OdGiBaseVectorizer_doDraw(this.swigCPtr, drawableFlags, OdGiDrawable.getCPtr(pDrawable));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual void setExtents(OdGePoint3d newExtents)
		{
			GlobalsPINVOKE.OdGiBaseVectorizer_setExtents(this.swigCPtr, OdGePoint3d.getCPtr(newExtents));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual void startAttributesSegment()
		{
			GlobalsPINVOKE.OdGiBaseVectorizer_startAttributesSegment(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public bool isAttributesSegmentEnabled()
		{
			bool result = GlobalsPINVOKE.OdGiBaseVectorizer_isAttributesSegmentEnabled(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual void rasterImageDc(OdGePoint3d origin, OdGeVector3d u, OdGeVector3d v, OdGiRasterImage pImage, OdGePoint2d[] uvBoundary, bool transparency, double brightness, double contrast, double fade)
		{
			IntPtr intPtr = Helpers.MarshalPoint2dArray(uvBoundary);
			try
			{
				GlobalsPINVOKE.OdGiBaseVectorizer_rasterImageDc__SWIG_0(this.swigCPtr, OdGePoint3d.getCPtr(origin), OdGeVector3d.getCPtr(u), OdGeVector3d.getCPtr(v), OdGiRasterImage.getCPtr(pImage), intPtr, transparency, brightness, contrast, fade);
				if (GlobalsPINVOKE.SWIGPendingException.Pending)
				{
					throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
				}
			}
			finally
			{
				Marshal.FreeCoTaskMem(intPtr);
			}
		}

		public virtual void rasterImageDc(OdGePoint3d origin, OdGeVector3d u, OdGeVector3d v, OdGiRasterImage pImage, OdGePoint2d[] uvBoundary, bool transparency, double brightness, double contrast)
		{
			IntPtr intPtr = Helpers.MarshalPoint2dArray(uvBoundary);
			try
			{
				GlobalsPINVOKE.OdGiBaseVectorizer_rasterImageDc__SWIG_1(this.swigCPtr, OdGePoint3d.getCPtr(origin), OdGeVector3d.getCPtr(u), OdGeVector3d.getCPtr(v), OdGiRasterImage.getCPtr(pImage), intPtr, transparency, brightness, contrast);
				if (GlobalsPINVOKE.SWIGPendingException.Pending)
				{
					throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
				}
			}
			finally
			{
				Marshal.FreeCoTaskMem(intPtr);
			}
		}

		public virtual void rasterImageDc(OdGePoint3d origin, OdGeVector3d u, OdGeVector3d v, OdGiRasterImage pImage, OdGePoint2d[] uvBoundary, bool transparency, double brightness)
		{
			IntPtr intPtr = Helpers.MarshalPoint2dArray(uvBoundary);
			try
			{
				GlobalsPINVOKE.OdGiBaseVectorizer_rasterImageDc__SWIG_2(this.swigCPtr, OdGePoint3d.getCPtr(origin), OdGeVector3d.getCPtr(u), OdGeVector3d.getCPtr(v), OdGiRasterImage.getCPtr(pImage), intPtr, transparency, brightness);
				if (GlobalsPINVOKE.SWIGPendingException.Pending)
				{
					throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
				}
			}
			finally
			{
				Marshal.FreeCoTaskMem(intPtr);
			}
		}

		public virtual void rasterImageDc(OdGePoint3d origin, OdGeVector3d u, OdGeVector3d v, OdGiRasterImage pImage, OdGePoint2d[] uvBoundary, bool transparency)
		{
			IntPtr intPtr = Helpers.MarshalPoint2dArray(uvBoundary);
			try
			{
				GlobalsPINVOKE.OdGiBaseVectorizer_rasterImageDc__SWIG_3(this.swigCPtr, OdGePoint3d.getCPtr(origin), OdGeVector3d.getCPtr(u), OdGeVector3d.getCPtr(v), OdGiRasterImage.getCPtr(pImage), intPtr, transparency);
				if (GlobalsPINVOKE.SWIGPendingException.Pending)
				{
					throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
				}
			}
			finally
			{
				Marshal.FreeCoTaskMem(intPtr);
			}
		}

		public virtual void rasterImageDc(OdGePoint3d origin, OdGeVector3d u, OdGeVector3d v, OdGiRasterImage pImage, OdGePoint2d[] uvBoundary)
		{
			IntPtr intPtr = Helpers.MarshalPoint2dArray(uvBoundary);
			try
			{
				GlobalsPINVOKE.OdGiBaseVectorizer_rasterImageDc__SWIG_4(this.swigCPtr, OdGePoint3d.getCPtr(origin), OdGeVector3d.getCPtr(u), OdGeVector3d.getCPtr(v), OdGiRasterImage.getCPtr(pImage), intPtr);
				if (GlobalsPINVOKE.SWIGPendingException.Pending)
				{
					throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
				}
			}
			finally
			{
				Marshal.FreeCoTaskMem(intPtr);
			}
		}

		public virtual void metafileDc(OdGePoint3d origin, OdGeVector3d u, OdGeVector3d v, OdGiMetafile pMetafile, bool bDcAligned, bool bAllowClipping)
		{
			GlobalsPINVOKE.OdGiBaseVectorizer_metafileDc__SWIG_0(this.swigCPtr, OdGePoint3d.getCPtr(origin), OdGeVector3d.getCPtr(u), OdGeVector3d.getCPtr(v), OdGiMetafile.getCPtr(pMetafile), bDcAligned, bAllowClipping);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual void metafileDc(OdGePoint3d origin, OdGeVector3d u, OdGeVector3d v, OdGiMetafile pMetafile, bool bDcAligned)
		{
			GlobalsPINVOKE.OdGiBaseVectorizer_metafileDc__SWIG_1(this.swigCPtr, OdGePoint3d.getCPtr(origin), OdGeVector3d.getCPtr(u), OdGeVector3d.getCPtr(v), OdGiMetafile.getCPtr(pMetafile), bDcAligned);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual void metafileDc(OdGePoint3d origin, OdGeVector3d u, OdGeVector3d v, OdGiMetafile pMetafile)
		{
			GlobalsPINVOKE.OdGiBaseVectorizer_metafileDc__SWIG_2(this.swigCPtr, OdGePoint3d.getCPtr(origin), OdGeVector3d.getCPtr(u), OdGeVector3d.getCPtr(v), OdGiMetafile.getCPtr(pMetafile));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual void polylineEye(OdGePoint3d[] numVertices)
		{
			IntPtr intPtr = Teigha.Core.Helpers.MarshalPoint3dArray(numVertices);
			try
			{
				GlobalsPINVOKE.OdGiBaseVectorizer_polylineEye(this.swigCPtr, intPtr);
				if (GlobalsPINVOKE.SWIGPendingException.Pending)
				{
					throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
				}
			}
			finally
			{
				Marshal.FreeCoTaskMem(intPtr);
			}
		}

		public virtual void polygonEye(OdGePoint3d[] numVertices)
		{
			IntPtr intPtr = Teigha.Core.Helpers.MarshalPoint3dArray(numVertices);
			try
			{
				GlobalsPINVOKE.OdGiBaseVectorizer_polygonEye(this.swigCPtr, intPtr);
				if (GlobalsPINVOKE.SWIGPendingException.Pending)
				{
					throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
				}
			}
			finally
			{
				Marshal.FreeCoTaskMem(intPtr);
			}
		}

		public virtual void polylineDc(OdGePoint3d[] numVertices)
		{
			IntPtr intPtr = Teigha.Core.Helpers.MarshalPoint3dArray(numVertices);
			try
			{
				GlobalsPINVOKE.OdGiBaseVectorizer_polylineDc(this.swigCPtr, intPtr);
				if (GlobalsPINVOKE.SWIGPendingException.Pending)
				{
					throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
				}
			}
			finally
			{
				Marshal.FreeCoTaskMem(intPtr);
			}
		}

		public virtual void polygonDc(OdGePoint3d[] numVertices)
		{
			IntPtr intPtr = Teigha.Core.Helpers.MarshalPoint3dArray(numVertices);
			try
			{
				GlobalsPINVOKE.OdGiBaseVectorizer_polygonDc(this.swigCPtr, intPtr);
				if (GlobalsPINVOKE.SWIGPendingException.Pending)
				{
					throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
				}
			}
			finally
			{
				Marshal.FreeCoTaskMem(intPtr);
			}
		}

		public virtual void onTraitsModified()
		{
			GlobalsPINVOKE.OdGiBaseVectorizer_onTraitsModified(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual OdGiDeviation modelDeviation()
		{
			OdGiDeviation_Internal result = new OdGiDeviation_Internal(GlobalsPINVOKE.OdGiBaseVectorizer_modelDeviation(this.swigCPtr), false);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual OdGiDeviation worldDeviation()
		{
			OdGiDeviation_Internal result = new OdGiDeviation_Internal(GlobalsPINVOKE.OdGiBaseVectorizer_worldDeviation(this.swigCPtr), false);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual OdGiDeviation eyeDeviation()
		{
			OdGiDeviation_Internal result = new OdGiDeviation_Internal(GlobalsPINVOKE.OdGiBaseVectorizer_eyeDeviation(this.swigCPtr), false);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public OdGiMaterialTraitsData effectiveMaterialTraitsData()
		{
			OdGiMaterialTraitsData result = new OdGiMaterialTraitsData(GlobalsPINVOKE.OdGiBaseVectorizer_effectiveMaterialTraitsData__SWIG_0(this.swigCPtr), false);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public void effectiveMaterialTraitsData(OdGiMaterialTraitsData data)
		{
			GlobalsPINVOKE.OdGiBaseVectorizer_effectiveMaterialTraitsData__SWIG_1(this.swigCPtr, OdGiMaterialTraitsData.getCPtr(data));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public void setEffectiveMaterialTraitsData(OdDbStub materialId, OdGiMaterialTraitsData data, bool bForce)
		{
			GlobalsPINVOKE.OdGiBaseVectorizer_setEffectiveMaterialTraitsData__SWIG_0(this.swigCPtr, OdDbStub.getCPtr(materialId), OdGiMaterialTraitsData.getCPtr(data), bForce);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public void setEffectiveMaterialTraitsData(OdDbStub materialId, OdGiMaterialTraitsData data)
		{
			GlobalsPINVOKE.OdGiBaseVectorizer_setEffectiveMaterialTraitsData__SWIG_1(this.swigCPtr, OdDbStub.getCPtr(materialId), OdGiMaterialTraitsData.getCPtr(data));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public IntPtr selectionMarker()
		{
			IntPtr result = GlobalsPINVOKE.OdGiBaseVectorizer_selectionMarker(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public OdGiSubEntityTraitsData byBlockTraits()
		{
			IntPtr intPtr = GlobalsPINVOKE.OdGiBaseVectorizer_byBlockTraits(this.swigCPtr);
			OdGiSubEntityTraitsData result = (intPtr == IntPtr.Zero) ? null : new OdGiSubEntityTraitsData(intPtr, false);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public void setByBlockTraits(OdGiSubEntityTraitsData pByBlock)
		{
			GlobalsPINVOKE.OdGiBaseVectorizer_setByBlockTraits(this.swigCPtr, OdGiSubEntityTraitsData.getCPtr(pByBlock));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public OdRxObject saveByBlockTraits()
		{
			MemoryManager memoryManager = MemoryManager.GetMemoryManager();
			MemoryTransaction currentTransaction = memoryManager.GetCurrentTransaction();
			IntPtr p = GlobalsPINVOKE.OdGiBaseVectorizer_saveByBlockTraits(this.swigCPtr);
			OdRxObject result;
			if (currentTransaction != null)
			{
				currentTransaction.AddObject(Teigha.Core.Helpers.odrxCreateObjectInternal(p, true));
				result = Teigha.Core.Helpers.odrxCreateObjectInternal(p, false);
			}
			else
			{
				result = Teigha.Core.Helpers.odrxCreateObjectInternal(p, true);
			}
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public static IntPtr OdGiBaseVectorizer_OdGiViewportDraw__Upcast(IntPtr ptr)
		{
			IntPtr result = GlobalsPINVOKE.OdGiBaseVectorizer_OdGiBaseVectorizer_OdGiViewportDraw__Upcast(ptr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual void onTextProcessing(OdGePoint3d arg0, OdGeVector3d arg1, OdGeVector3d arg2)
		{
			GlobalsPINVOKE.OdGiBaseVectorizer_onTextProcessing(this.swigCPtr, OdGePoint3d.getCPtr(arg0), OdGeVector3d.getCPtr(arg1), OdGeVector3d.getCPtr(arg2));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		private object locker = new object();

		private HandleRef swigCPtr;

		public enum ChangedTraits
		{
			kFirstChangedFlag = 1,
			kColorChanged = 1,
			kLayerChanged,
			kLineTypeChanged = 4,
			kFillTypeChanged = 8,
			kLineWeightChanged = 16,
			kLineTypeScaleChanged = 32,
			kThicknessChanged = 64,
			kPlotStyleChanged = 128,
			kMaterialChanged = 256,
			kMapperChanged = 512,
			kVisualStyleChanged = 1024,
			kTransparencyChanged = 2048,
			kDrawFlagsChanged = 4096,
			kSelectionGeomChanged = 8192,
			kShadowFlagsChanged = 16384,
			kSectionableChanged = 32768,
			kSelectionFlagsChanged = 65536,
			kSecColorChanged = 131072,
			kLSModifiersChanged = 262144,
			kAwareFlagChanged = 524288,
			kAllChanged = 1048575,
			kSomeChanged = 1048575
		}
	}
}
